/**
 * 定义消息发生的核心接口
 */
import { MessageSubscriber } from '../types/types';
import { Attachment, ToolDefinition, ToolResult, WebviewToExtensionMessage } from '../types/types';

/**
 * 消息总线接口
 * 负责后端与 Webview 之间的所有通信
 */
import { ExtensionToWebviewMessage } from '../types/types';

export interface IAgentBus {


    /** 发送消息 */
    sendMessage(message: ExtensionToWebviewMessage): Promise<void>;
    
    
    /** 发送工具确认请求 (Request-Response) */
    requestConfirmation(toolCall: any): Promise<boolean>;

    
    /** * 注册消息监听器 
     * Controller 通过此方法订阅前端发来的消息
     */
    subscribe(subscriber:MessageSubscriber): void;
}